Appendix A
(normative)
RRULE Processing

A particular BYxxx rule part may expand or limit the set of date/times generated by the rule. The expand or limit behaviour is governed by the FREQ value used for the rule.

EXAMPLE

RRULE:FREQ=MONTHLY;BYMONTH=1,3,5;BYDAY=MO,TU

The FREQ=MONTHLY value would match each of the twelve months in a year.

The BYMONTH=1,3,5 rule part limits the matching months to just the 1st, 3rd and 5th in a year.

The BYDAY=MO,TU rule part adds each Monday and Tuesday within the matching months to the recurrence set.

The table below shows the dependency of BYxxx rule part expand or limit behaviour on the FREQ value in the rule. When evaluating a rule, each BYxxx rule part must be evaluated in the order it appears in the table (i.e. BYMONTH evaluated before BYWEEKNO), irrespective of the expand or limit behaviour.

BYDAY has some special behaviour depending on the FREQ value and this is described in separate notes below the table.

SECONDLY

MINUTELY

HOURLY

DAILY

WEEKLY

MONTHLY

YEARLY

BYMONTH

Limit

Limit

Limit

Limit

Limit

Limit

Expand

BYWEEKNO

Limit

Limit

Limit

Limit

Limit

N/A

Expand

BYYEARDAY

N/A

N/A

N/A

N/A

N/A

N/A

Expand

BYMONTHDAY

Limit

Limit

Limit

Limit

N/A

Expand

Expand

BYDAY

Limit

Limit

Limit

Limit

a)

b)

c)

BYHOUR

Limit

Limit

Limit

Expand

Expand

Expand

Expand

BYMINUTE

Limit

Limit

Expand

Expand

Expand

Expand

Expand

BYSECOND

Limit

Expand

Expand

Expand

Expand

Expand

Expand

BYSETPOS

Limit

Limit

Limit

Limit

Limit

Limit

Limit